// utils/request.js
// 基础配置

// let baseUrl = 'https://api.example.com'
let baseURL = "http://192.168.32.41:8089"
const baseConfig = {
	baseURL,
	timeout: 5000,
	header: {
		'Content-Type': 'application/json'
	}
};

// 封装请求函数
const request = (options) => {
	return new Promise((resolve, reject) => {
		// 合并基础配置和传入的配置
		const config = {
			...baseConfig,
			...options,
			url: baseConfig.baseURL + options.url
		};

		// 请求拦截：可在此添加请求头、处理参数等
		const token = uni.getStorageSync('token');
		if (token) {
			config.header['Authorization'] = `Bearer ${token}`;
		}

		// 发起请求
		uni.request({
			...config,
			success: (res) => {
				console.log("请求状态", res)
				// 响应拦截：可在此处理业务逻辑错误
				if (res.statusCode === 200) {
					const data = res.data
					if (data.code == 401) {
						uni.removeStorageSync("token")
						uni.reLaunch({
							url: "/pages/login"
						})
						reject(res.data)
					} else if (data.code == 500) {
						reject(res.data)
					} else {
						resolve(res.data)
					}


				} else {
					uni.showToast({
						title: `请求失败，状态码: ${res.statusCode}`,
						icon: 'none'
					});
					reject(new Error(`请求失败，状态码: ${res.statusCode}`));
				}
			},
			fail: (err) => {
				// 网络错误处理
				uni.showToast({
					title: '网络错误，请稍后重试',
					icon: 'none'
				});
				reject(err);
			}
		});
	});
};

export default request;